import java.util.Scanner;

/**
 * 
 * 水仙花数
 * 
 * 题目描述

所谓水仙花数，是指一个n位的正整数，其各位数字的n次方和等于该数本身。

例如153是水仙花数，153是一个3位数，并且153 = 1^3 + 5^3 + 3^3。

输入描述
第一行输入一个整数n，表示一个n位的正整数。n在3到7之间，包含3和7。

第二行输入一个整数m，表示需要返回第m个水仙花数。

输出描述
返回长度是n的第m个水仙花数。个数从0开始编号。

若m大于水仙花数的个数，返回最后一个水仙花数和m的乘积。

若输入不合法，返回-1。

用例
输入	
3
0
输出	153
说明	153是第一个水仙花数
输入	
9
1
输出	-1
说明	9超出范围

 */
public class 水仙花数 {
    
    public static void main(String[] args) {
        
        try{

            Scanner scanner = new Scanner(System.in);

            int n = scanner.nextInt();  //[3, 7]
            int m = scanner.nextInt(); //第几个水仙花

            if(m < 0) {
                System.out.println("-1");

                return;
            }

            if(n >=3 && n<=7){

                //最小n 位数
                int minPow = (int)Math.pow(10, n -1);
                //最大 n 位数
                int maxPow = (int)Math.pow(10, n) - 1;

                int flowerCount = 0;

                //遍历最小 n位数 到最大 n位数 
                for(int i=minPow; i<=maxPow; i++){

                    //拿到数字判断是不是水仙花数
                    int sum =0;
                    for(char c : String.valueOf(i).toCharArray()){

                        sum += Math.pow(Integer.parseInt(c+""), n);

                    }

                    if(sum == i){

                        //是水仙数
                        if(flowerCount == m){

                            System.out.println(""+i);

                            return;

                        } else if(flowerCount < m){
                            System.out.println(""+(i*m));

                            return;
                        }

                        flowerCount++;
                    }
                }

            } else{
                System.out.println("-1");
            }


        }catch(Exception e){

            e.printStackTrace();
        }
    }
}
